package com.muyu.danmo.mapper;


import com.muyu.danmo.domain.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 装裱信息Mapper接口
 *
 * @author yangle
 * @date 2024-10-14
 */
public interface DanmoMountMessageMapper
{
    /**
     * 查询装裱信息
     *
     * @param id 装裱信息主键
     * @return 装裱信息
     */
    public DanmoMountMessage selectDanmoMountMessageById(Long id);

    /**
     * 查询装裱信息列表
     *
     * @param danmoMountMessage 装裱信息
     * @return 装裱信息集合
     */
    public List<DanmoMountMessage> selectDanmoMountMessageList(DanmoMountMessage danmoMountMessage);

    /**
     * 新增装裱信息
     *
     * @param danmoMountMessage 装裱信息
     * @return 结果
     */
    public int insertDanmoMountMessage(DanmoMountMessage danmoMountMessage);

    /**
     * 修改装裱信息
     *
     * @param danmoMountMessage 装裱信息
     * @return 结果
     */
    public int updateDanmoMountMessage(DanmoMountMessage danmoMountMessage);

    /**
     * 删除装裱信息
     *
     * @param id 装裱信息主键
     * @return 结果
     */
    public int deleteDanmoMountMessageById(Long id);

    /**
     * 批量删除装裱信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDanmoMountMessageByIds(Long[] ids);

    /**
     * 批量删除装裱图片
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDanmoMountImagesByMountIds(Long[] ids);

    /**
     * 批量新增装裱图片
     *
     * @param danmoMountImagesList 装裱图片列表
     * @return 结果
     */
    public int batchDanmoMountImages(List<DanmoMountImages> danmoMountImagesList);


    /**
     * 通过装裱信息主键删除装裱图片信息
     *
     * @param id 装裱信息ID
     * @return 结果
     */
    public int deleteDanmoMountImagesByMountId(Long id);

    DanmoMountMessage danmoMountMessageByUserId(Long userId);

    void insertDanmoMountWorks(@Param("list") List<DanmoMountWorks> danmoMountWorks);

    void insertDanmoMountInteriorList(@Param("list") List<DanmoMountInterior> danmoMountInteriorList);

    void insertDanmoMountDoors(@Param("list") List<DanmoMountDoor> danmoMountDoors);

    List<Long> selectDanmoMountDoorList(@Param("id") Long danmoMountMessageId);

    void deleteDanmoMountDoorByPrintingIds(@Param("list") List<Long> danmoDoorIdList);

    List<Long> selectDanmoMountWorksList(@Param("id") Long danmoMountMessageId);

    void deleteDanmoMountWorksByPrintingIds(@Param("list") List<Long> danmoWorksIdList);

    List<Long> seletDanmoMountInteriorPhotos(@Param("id") Long danmoMountMessageId);

    void deleteDanmoMountInteriorPhotos(@Param("list") List<Long> danmoInteriorPhotos);


    void deleteDanmoMountDoors(@Param("id") Long id);

    void deleteDanmoMountInteriorList(@Param("id") Long id);

    void deleteDanmoMountWorks(@Param("id") Long id);

    List<DanmoMountMessage> danmoMountMessageByViews();


    /**
     * 查询收藏
     * @param userId
     * @return
     */
    List<DanmoMountFavorite> selectDanmoMountByFavoriteList(@Param("userId") Long userId);

    void insertDanmoMounttypes(@Param("list") List<DanmoMountType> danmoMountTypes);

    List<Long> seletDanmoMountMountTypes(@Param("id") Long danmoMountMessageId);

    void deleteDanmoMountTypes(@Param("list") List<Long> danmoInteriorTypes);

    void deleteDanmoMountTypeList(@Param("id") Long id);
}
